English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C ++ map operator []함수는 주어진키 값map의 요소에 접근합니다.
그와 유사하게at()함수. 그들은 map에 존재하지 않는 키를 참조할 때 예외를 발생시키는 유일한 차이점이며, 또한 map에 존재하지 않는 키가 있을 경우operator[]키를 map에 삽입합니다.
키 값k에서
mapped_type& operator[](const key_type& k); // C++ 11 전에 mapped_type& operator[](const key_type& k); //C++ 11 시작 mapped_type& operator[](key_type&& k); //C++ 11 시작
k:map 값의 요소에 접근하는 키 값.
그는 키 값을 사용하여 요소의 map 값에 대한 참조를 반환합니다.
요소에 접근하는 간단한 예제를 보여드리겠습니다.
#include <iostream> #include <map> using namespace std; int main() { map<char, int> m = { {'a', 1}, {'b', 2}, {'c', 3}, {'d', 4}, {'e', 5}, }; cout << "Map은 다음 요소를 포함합니다" << endl; cout << "m['a'] = " << m['a'] << endl; cout << "m['b'] = " << m['b'] << endl; cout << "m['c'] = " << m['c'] << endl; cout << "m['d'] = " << m['d'] << endl; cout << "m['e'] = " << m['e'] << endl; return 0; }
출력:
Map은 다음 요소를 포함합니다 m['a'] = 1 m['b'] = 2 m['c'] = 3 m['d'] = 4 m['e'] = 5
위에서 operator [] 함수는 map의 요소에 접근하는 데 사용됩니다.
이제 간단한 예제를 보여드리겠습니다. 그들의 키 값을 사용하여 요소를 추가합니다.
#include <iostream> #include <string> #include <map> using namespace std; int main () { map<int,string> mymap = { { 101, "" }, { 102, "" }, { 103, ""} }; mymap[101] = "w3codebox"; mymap[102] = "."; mymap[103] = "com"; //打印与键101相关联的值,即w}}3codebox cout << mymap[101}; // 打印与键102相关的值,即. cout << mymap[102}; //打印与键103相关的值,即com cout << mymap[103}; return 0; }
출력:
oldtoolbag.com
在上面的示例中,operator []用于在初始化后使用关联的键值添加元素。
让我们看一个简单的示例,以更改与键值关联的值。
#include <iostream> #include <string> #include <map> using namespace std; int main () { map<int,string> mymap = { { 100, "Nikita"}}, { 200, "Deep" }}; { 300, "Priya" }, { 400, "Suman" }, { 500, "Aman" }}; cout << "元素是:" << endl; for (auto& x: mymap) { cout << x.first << ": \ } mymap[100] = "Nidhi"; //将与键100关联的值更改为Nidhi mymap[300] = "Pinku"; //将与键300关联的值更改为Pinku mymap[500] = "Arohi"; //将与键500关联的值更改为Arohi cout << "\n更改后的元素是:" << endl; for (auto& x: mymap) { cout << x.first << ": \ } return 0; }
출력:
元素是: 100: Nikita 200: Deep 300: Priya 400: Suman 500: Aman 更改后的元素是: 100: Nidhi 200: Deep 300: Pinku 400: Suman 500: Arohi
在上面的示例中,operator []函数用于更改与其键值关联的值。
让我们看一个简单的实例来区分operator []和at()。
#include <iostream> #include <string> #include <map> using namespace std; int main () { map<char,string> mp = { { 'a',"Java"}, { 'b', "C++" }, { 'c', "Python" }}; cout << endl << mp['a']; cout << endl << mp['b']; cout << endl << mp['c']; mp['d'] = "SQL"; cout << endl << mp['d']; try { mp.at('z'); //由于map中没有值为z的键,因此会抛出异常 catch(const out_of_range &e) { cout << endl << "\nout_of_range 예외 " << e.what(); } return 0; }
출력:
Java C++ Python SQL out_of_range 예외 map::at
위의 예제에서 at() 함수를 사용할 때, 맵에 값 z의 키가 없기 때문에 out_of_range 예외가 발생합니다. 또한, operator []를 사용하여 키 값 d에 요소를 추가할 때, 맵에 키值为“ d”가 없는 경우, 맵에 키值为“ d”이고 값이 “SQL”인 키-밸류 쌍을 삽입합니다.